import axios from 'axios'
import qs from "qs";

// 创建自定义的axios对象
const myAxios = axios.create({
  timeout: 100000,
  headers:{
    "Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"
  }
})

// 添加请求拦截器
myAxios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么：携带其他数据，解析数据，规范化数据
  config.data = qs.stringify(config.data);
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
myAxios.interceptors.response.use(function (response) {
  // 对响应数据做点什么：提前对响应到的数据，进行统一的处理，或进行前端的权限验证，或登录验证
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});


// 利用自定义的axios对象，发起数据请求
// 自定义axios对象发起的所有请求都会执行到配置信息，和请求拦截器，及响应拦截器
export function getNavData(){
  return new Promise(resolve=>{
      resolve({
          data:[{
              title:"首页",
              href:"/"
            },{
              title:"教程",
              href:"/course"
            },{
              title:"广场",
              href:"/square"
            },{
              title:"问答",
              href:"/qa"
            },{
              title:"体系",
              href:"/system"
            },{
              title:"项目",
              href:"/project"
          }]
      })
  })
}

export function getBanner(){
  return myAxios({
      url:"/api/banner/json"
  })
}

export function getCourse(){
  return myAxios({
    url:"/api/chapter/547/sublist/json"
  })
}

export function getCourseDetail(id, index=0){
  return myAxios({
    url:`/api/article/list/${index}/json`,
    params:{
      cid: id,
      "order_type": 1
    }
  })
}

export function getSystemNav(){
  return myAxios({
    url:"/api/tree/json"
  })
}

export function getSystemDetail(id, index=0){
  return myAxios({
    url:`/api/article/list/${index}/json`,
    params:{
      cid: id
    }
  })
}

export function testPost(data={}){
  return myAxios({
    method: "post",
    url:"/api/article/query/0/json",
    data: data
  })
}
